import tkinter as tk

class TextPreviewer:
    def __init__(self, text_content, width=500, height=500, x=50, y=50):
        # 初始化主窗口
        self.root = tk.Tk()
        self.root.title("文本预览器")
        
        # 设置窗口初始大小
        self.root.geometry(f"{width}x{height}+{x}+{y}")
        
        # 创建一个滚动条
        self.scrollbar = tk.Scrollbar(self.root)
        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        
        # 创建一个多行文本框
        self.text_widget = tk.Text(self.root, wrap=tk.WORD, yscrollcommand=self.scrollbar.set, state='disabled')
        self.text_widget.pack(fill=tk.BOTH, expand=True)
        
        # 配置滚动条与文本框的关联
        self.scrollbar.config(command=self.text_widget.yview)
        
        # 绑定窗口大小变化事件
        self.root.bind("<Configure>", self.on_resize)
        
        # 初始化文本内容
        self.set_text(text_content)
        
        # 运行主循环
        self.root.mainloop()

    def set_text(self, text_content):
        """设置文本框的内容"""
        # 启用文本框以便修改内容
        self.text_widget.config(state='normal')
        # 清除当前文本并插入新文本
        self.text_widget.delete(1.0, tk.END)
        self.text_widget.insert(tk.END, text_content)
        # 禁用文本框使其只读
        self.text_widget.config(state='disabled')

    def on_resize(self, event):
        """调整文本框大小以适应窗口大小"""
        if event.width > 0 and event.height > 0:
            self.text_widget.config(width=event.width, height=event.height)

# 示例使用
if __name__ == "__main__":
    sample_text = """这是一个多行文本的例子。
    它可以包含任意数量的行。
    每一行都会显示在只读的文本框中。
    文本框会根据窗口大小自动调整。"""

    previewer = TextPreviewer(sample_text, 600, 400)